<template>
  <!-- value 是单向的不能被修改 （所以v-model改为:value）-->
  <!-- :value 可以给组件赋值 -->
  <el-select @change="changeChannel" clearable :value="value" placeholder="请选择">
    <el-option v-for="item in channelOptions" :key="item.id" :label="item.name" :value="item.id"></el-option>
  </el-select>
</template>

<script>
export default {
  name: "my-channel",
  // 接收父组件传过来的值
  props: ["value"],
  data() {
    return {
      // channelId: null,
      channelOptions: []
    };
  },
  created() {
    this.getChannelOptions();
  },
  methods: {
    // 选择频道
    changeChannel(val) {
      // 如果清空，val 是""字符串，应该设置为 null
      if (val === "") val = null;
      // 将改变的数据传递给父组件
      this.$emit("input", val);
    },
    // 获取频道数据（行为方法）
    async getChannelOptions() {
      const res = await this.$http.get("channels");
      //console.log(res);
      this.channelOptions = res.data.data.channels;
    }
  }
};
</script>

<style>
</style>